AWS Glue
https://gyazo.com/ad6f18b8f074344c238b1611a1ead946
AWS Glueとは「Big Data処理/分析」で利用されるService。Datalakeを構築する上での根幹を担う
AWS Glue は、分析のためのデータの準備とロードを容易にする、フルマネージド型の新しい ETL (抽出、変換、ロード) サービスです。
from:AWS Glue(分析用データ抽出、変換、ロード (ETL) )| AWS
Glueの機能は大きく2種類存在する
1.iconAthena,GlueでSQL実行するための「Table meta data」の作成,管理
2.iconETL(大規模Data処理)を実行する
1.iconAthena,GlueでSQL実行するための「Table meta data」の作成,管理
Glue DataCatalogとして管理される
Table meta data、Table Schemeのこと
AthenaでSQL実行する上で必要な「table名, column名, Data型, primary key, partition……」が定義される
定義は3種類の方法がある
Athenaにて先に宣言する
SQLのCREATEステートメントで宣言する
参考)CREATE TABLE - Amazon Athena
AWS Glue上で定義する
参考)AWS Glue データカタログ でテーブルを定義する - AWS Glue
Glue Crawlerにて、自動で定義する
参考)クローラの定義 - AWS Glue
NPではこれが主流tsawada.icon
一番手軽なため
他手段だと、table構造を明文化しないといけない
2.iconETL(大規模Data処理)を実行する
Glue Jobにて実行する
Glue Jobを実行するにはTrigger, Script, Job設定の3つが必要
Trigger
Jobを実行するきっかけ。
定時実行, EventBridge など色々可能
Script
実際に行われるETL処理を記述すうる
Glue Jobは内部でSparkが動いているため、言語はScala,Pysparkのどちらかを利用する
「Glueは本体がSpark」という話にまつわることはGlueの稼働時間(cost)を削減するを参照ください
Job設定
Glueは「DPU」という単位でComputing Resourceを用意する
料金 - AWS Glue | AWS
1 個の DPU (Data Processing Unit) では 4 つの vCPU と 16 GB のメモリが提供されます。
内部ではSparkが動くため「メモリ(=RAM)」の大きさが死活問題
Pysparkで記述された「1工程」で必要なDataは全て「一度RAMに乗せる」必要がある
coding時に「この一行(=処理)はどれほどの規模のDataを対象に行うか」を考える必要がある
NPはだいたい「月ごとに集計(例:未払い率)」するので、月ごとに処理するように記載するのが基本